Reliable backup of data is an important aspect of any computing system where loss of data would be detrimental to the system. For a backup system to be effective, at least one replica of the data should survive a failure, or data-destroying event, so that data can be recovered. Such failures may happen as a result of catastrophic events (such as terrorist attacks), extreme weather phenomena, large-scale network failures, power blackouts, and other similar events. To survive such events, data should be replicated on nodes that are unlikely to be affected by concurrent failures (i.e., failures affecting multiple system nodes simultaneously).
Recently, methods that replicate content across multiple nodes have been used. To ensure that a catastrophic event does not destroy the data, often times the multiple nodes are distributed across geographically diverse areas, in what is known as “geo-replication.” These multiple nodes may be located very far away from each other (e.g., across countries or continents), increasing the cost and time to perform a replication. One technique to mitigate the cost and performance issue of geo-replication is to write data locally and then, post-process, disperse the data to object clusters in geographically different locations. However, these geo-replication techniques and systems improperly assume that all object clusters are formed of high speed storage devices.